import os
from openai import OpenAI
from dotenv import load_dotenv


env_path = os.path.join(os.path.dirname(__file__), '..', 'ak.envs')
load_dotenv(dotenv_path=env_path)

def polish_text(text, target_language='french'):
    try:
        client = OpenAI(
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
        )


        if target_language == 'french':
            system_prompt = """你是一位专业的法语润色专家。请优化以下法语文本，使其：
1. 语法准确
2. 表达自然流畅
3. 符合法语母语者的表达习惯
4. 保持原文的核心意思

请直接输出优化后的法语文本，不要添加任何解释或说明。"""
            user_prompt = f"请润色以下法语文本：\n\n{text}"
        else:
            system_prompt = """你是一位专业的中文润色专家。请优化以下中文文本，使其：
1. 语法准确
2. 表达自然流畅
3. 符合中文母语者的表达习惯
4. 保持原文的核心意思

请直接输出优化后的中文文本，不要添加任何解释或说明。"""
            user_prompt = f"请润色以下中文文本：\n\n{text}"

        completion = client.chat.completions.create(
            model="qwen-turbo",
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": user_prompt},
            ],
        )

        polished_text = completion.choices[0].message.content.strip()
        token_usage = completion.usage.total_tokens

        return True, polished_text, token_usage, None

    except Exception as e:
        error_msg = f"润色失败：{str(e)}"
        return False, None, 0, error_msg
